package com.tencent.sr.iris.activity.service.task;


import com.tencent.sr.iris.activity.interfaces.request.group.AdvisorGroupTaskRequest;
import com.tencent.sr.iris.activity.interfaces.request.group.AdvisorGroupTaskSecondRequest;
import com.tencent.sr.iris.activity.interfaces.request.group.AdvisorGroupTaskThirdRequest;
import com.tencent.sr.iris.activity.interfaces.request.group.GroupTaskRequest;
import com.tencent.sr.iris.activity.interfaces.request.group.GroupTaskSecondRequest;
import com.tencent.sr.iris.activity.interfaces.request.group.RankConfigRequest;
import com.tencent.sr.iris.activity.interfaces.request.group.TaskStatisticsRequest;
import com.tencent.sr.iris.activity.interfaces.response.group.*;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.OperateSecondBoardResponse;
import com.tencent.sr.rmall.common.request.PaginationRequest;
import com.tencent.sr.rmall.common.response.PaginationResponse;
import java.util.List;

public interface GroupTaskBoardService {

    /**
     * 查询团长任务一级列表-团长视角
     *
     * @param request
     * @return
     */
    PaginationResponse<GroupTaskBoardResponse> queryGroupTaskBoard(PaginationRequest<GroupTaskRequest> request);


    /**
     * 查询团长任务二级列表-团长视角
     *
     * @param request
     * @return
     */
    PaginationResponse<GroupTaskBoardSecondResponse> queryGroupSecondTaskBoard(
            PaginationRequest<GroupTaskSecondRequest> request);

    /**
     * 查询团长任务二级列表-团长视角(特邀/普通团推团)
     *
     * @param request
     * @return
     */
    PaginationResponse<GroupNormalTaskSecondResponse> queryGroupTaskSecondBoardNormal(
            PaginationRequest<GroupTaskSecondRequest> request
    );

    /**
     * 查询团长任务一级列表-导师视角
     *
     * @param request
     * @return
     */
    PaginationResponse<AdvisorBoardResponse> queryAdvisorBoard(PaginationRequest<AdvisorGroupTaskRequest> request);

    /**
     * 查询团长任务二级列表-导师视角
     *
     * @param request
     * @return
     */
    GroupTaskPaginationResponse<OperateSecondBoardResponse> queryAdvisorSecondBoard(
            PaginationRequest<AdvisorGroupTaskSecondRequest> request);

    /**
     * 查询团长任务二级列表-导师视角(邀新有礼)
     *
     * @param request
     * @return
     */
    PaginationResponse<AdvisorBoardInviteSecondResponse> queryAdvisorSecondBoardInvite(
            PaginationRequest<AdvisorGroupTaskSecondRequest> request);

    /**
     * 查询团长任务二级列表-导师视角(GMV冲刺赛/销量冲刺赛)
     *
     * @param request
     * @return
     */
    GroupTaskPaginationResponse<AdvisorBoardSprintSecondResponse> queryAdvisorSecondBoardSprint(
            PaginationRequest<AdvisorGroupTaskSecondRequest> request);

    /**
     * 查询团长任务二级列表-导师视角(佣金回滚)
     *
     * @param request
     * @return
     */
    PaginationResponse<AdvisorBoardCommissionSecondResponse> queryAdvisorSecondBoardCommission(
            PaginationRequest<AdvisorGroupTaskSecondRequest> request);

    /**
     * 首单任务
     *
     * @param request
     * @return
     */
    PaginationResponse<AdvisorBoardFirstOrderSecondResponse> queryAdvisorSecondBoardFirstOrder(
            PaginationRequest<AdvisorGroupTaskSecondRequest> request);

    /**
     * 团推团任务
     *
     * @param request
     * @return
     */
    PaginationResponse<AdvisorNormalTaskSecondResponse> queryAdvisorSecondBoardNormal(
            PaginationRequest<AdvisorGroupTaskSecondRequest> request);

    /**
     * 排行榜任务
     *
     * @param request
     * @return
     */
    PaginationResponse<AdvisorBoardRankSecondResponse> queryAdvisorSecondRank(
            PaginationRequest<AdvisorGroupTaskSecondRequest> request
    );

    /**
     * 查询团长任务三级列表-导师视角
     *
     * @param request
     * @return
     */
    PaginationResponse<GroupTaskBoardSecondResponse> queryAdvisorThirdBoard(
            PaginationRequest<AdvisorGroupTaskThirdRequest> request);

    /**
     * 查询团长任务三级列表-导师视角(邀新有礼)
     *
     * @param request
     * @return
     */
    PaginationResponse<GroupTaskBoardSecondResponse> queryAdvisorThirdBoardInvite(
            PaginationRequest<AdvisorGroupTaskThirdRequest> request);

    /**
     * 首单任务
     *
     * @param request
     * @return
     */
    PaginationResponse<GroupTaskBoardSecondResponse> queryAdvisorThirdBoardFirstOrder(
            PaginationRequest<AdvisorGroupTaskThirdRequest> request);

    /**
     * 查询团长任务三级列表-导师视角(GMV冲刺赛/销量冲刺赛)
     *
     * @param request
     * @return
     */
    PaginationResponse<GroupTaskBoardSecondResponse> queryAdvisorThirdBoardSprint(
            PaginationRequest<AdvisorGroupTaskThirdRequest> request);

    /**
     * 查询团长任务三级列表-导师视角(佣金回滚)
     *
     * @param request
     * @return
     */
    PaginationResponse<AdvisorBoardCommissionThirdResponse> queryAdvisorThirdBoardCommission(
            PaginationRequest<AdvisorGroupTaskThirdRequest> request);

    /**
     * 查询团长任务三级列表-导师视角(团推团)
     *
     * @param request
     * @return
     */
    PaginationResponse<GroupNormalTaskSecondResponse> queryAdvisorThirdBoardNormal(
            PaginationRequest<AdvisorGroupTaskThirdRequest> request
    );

    /**
     * 查询团长任务三级列表-导师视角(排行榜)
     *
     * @param request
     * @return
     */
    PaginationResponse<GroupTaskBoardSecondResponse> queryAdvisorThirdRank(
            PaginationRequest<AdvisorGroupTaskThirdRequest> request);


    /**
     * 导师-团长任务统计
     *
     * @param request
     * @return
     */
    TaskStatisticsResponse queryAdvisorTaskStatistics(TaskStatisticsRequest request);

    /**
     * 营销-团长任务统计
     *
     * @param request
     * @return
     */
    TaskStatisticsResponse querySellerTaskStatistics(TaskStatisticsRequest request);

    /**
     * 排行榜任务-奖励阶段下拉列表查询
     *
     * @param request
     * @return
     */
    List<RankAwardConfigResponse> queryRankConfigs(RankConfigRequest request);
}
